home *** CD-ROM | disk | FTP | other *** search
- ###########################################
- ### Rulset 3 -- Name Canonicalization ###
- ###########################################
- S3
-
- # handle null input (translate to <@> special case)
- R$@ $@ <@>
-
- # Translate uucp stuff
- R$*!$* $2@$1
-
- # basic textual canonicalization -- note RFC733 heuristic here
- R$*<$*>$*<$*>$* $2$3<$4>$5 strip multiple <> <>
- R$*<$*<$+>$*>$* <$3>$5 2-level <> nesting
- R$*<>$* $@ <@> MAIL FROM:<> case
- R$*<$+>$* $2 basic RFC821/822 parsing
-
- # handle list:; syntax as special case
- R$*:;$* $@ $1 :; <@>
-
- # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later
- R@ $+ , $+ @ $1 : $2 change all "," to ":"
-
- # localize and dispose of route-based addresses
- R@ $+ : $+ $@ $>96 < @$1 > : $2 handle <route-addr>
-
- # find focus for list syntax
- R $+ : $* ; @ $+ $@ $>96 $1 : $2 ; < @ $3 > list syntax
- R $+ : $* ; $@ $1 : $2; list syntax
-
- # find focus for @ syntax addresses
- R$+ @ $+ $: $1 < @ $2 > focus on domain
- R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
- R$+ < @ $+ > $@ $>96 $1 < @ $2 > already canonical
-
- # do some sanity checking
- R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs
-
-
- # if we have % signs, take the rightmost one
- R$* % $* $1 @ $2 First make them all @s.
- R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
- R$* @ $* $@ $>96 $1 < @ $2 > Insert < > and finish
-
- # else we must be a local name
-
-